//  游戏基础逻辑文件

function getPostTop(i,j){
    return 20+i*120;
}

function getPostLeft(i,j){
    return 20+j*120;
}

function getNumberBackgroundColor(number){
    switch(number){
        case 2:return "#eee4da";break;
        case 4:return "#ede0c8";break;
        case 8:return "#f2b179";break;
        case 16:return "#f59563";break;
        case 32:return "#f67c5f";break;
        case 64:return "#f65e3b";break;
        case 128:return "#edcf72";break;
        case 256:return "#edcc61";break;
        case 512:return "#9c0";break;
        case 1024:return "#33b5e5";break;
        case 2048:return "#09c";break;
        case 4096:return "#a6c";break;
        case 8192:return "#93c";break;
    }
}

function getNumberColor(number){
    if(number<=16){
        return "#776e65";
    }
    return "white";
}

//判断是否可以向左移动
function canMoveLeft(board){
    for(var i=0;i<4;i++){
        for(var j=1;j<4;j++){
            if(board[i][j]!=0){
                //当前数字格的左边第一个值为0或者当前数字格的值与左边第一个数字格的值相等
                if(board[i][j-1]==0 || board[i][j-1]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}

//判断当前数字格左边的数字格的值是否为0
function noBlokHorizontalColLeft(row,col1,col2,board){
    for(var i=col1+1;i<col2;i++){
        if(board[row][i]!=0){
            return false;
        }
    }
    return true;
}

//判断是否可以向上移动
function canMoveUp(board){
    for(var i=1;i<4;i++){
        for(var j=0;j<4;j++){
            if(board[i][j]!=0){
                //当前数字格的上边第一个值为0或者当前数字格的值与上边第一个数字格的值相等
                if(board[i-1][j]==0 || board[i-1][j]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}

//判断当前数字格上边的数字格的值是否为0
function noBlokHorizontalRowUp(col,row1,row2,board){
    for(var i=row1+1;i<row2;i++){
        if(board[i][col]!=0){
            return false;
        }
    }
    return true;
}

//判断是否可以向右移动
function canMoveRight(board){
    for(var i=0;i<4;i++){
        for(var j=0;j<3;j++){
            if(board[i][j]!=0){
                //当前数字格的右边第一个值为0或者当前数字格的值与右边第一个数字格的值相等
                if(board[i][j+1]==0 || board[i][j+1]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}

//判断当前数字格右边的数字格的值是否为0
function noBlokHorizontalColRight(row,col1,col2,board){
    for(var i=col2;i>col1;i--){
        if(board[row][i]!=0){
            return false;
        }
    }
    return true;
}

//判断是否可以向下移动
function canMoveDown(board){
    for(var i=0;i<3;i++){
        for(var j=0;j<4;j++){
            if(board[i][j]!=0){
                //当前数字格的下边第一个值为0或者当前数字格的值与下边第一个数字格的值相等
                if(board[i+1][j]==0 || board[i+1][j]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}

//判断当前数字格下边的数字格的值是否为0
function noBlokHorizontalRowDown(col,row1,row2,board){
    for(var i=row2;i>row1;i--){
        if(board[i][col]!=0){
            return false;
        }
    }
    return true;
}

//判断是否还有位置
function nospace(board){
    for(var i=0;i<4;i++){
        for(var j=0;j<4;j++){
            if(board[i][j]==0){
                return false;
            }
        }
    }
    return true;
}

//判断是否可以移动 任意一个数字格的值与周围的数字格的值相等
function nomove(board){
    if(iscanMoveUp(board) || iscanMoveDown(board) || iscanMoveLeft(board) || iscanMoveRight(board)){
        return false;
    }
    return true;
}

//能否向上移动
function iscanMoveUp(board){
    for(var i=1;i<4;i++){
        for(var j=0;j<4;j++){
            if(board[i][j]!=0){
                if(board[i-1][j]==0 || board[i-1][j]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}

//能否向下移动
function iscanMoveDown(board){
    for(var i=0;i<3;i++){
        for(var j=0;j<4;j++){
            if(board[i][j]!=0){
                if(board[i+1][j]==0 || board[i+1][j]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}

//能否向左移动
function iscanMoveLeft(board){
    for(var i=0;i<4;i++){
        for(var j=1;j<4;j++){
            if(board[i][j]!=0){
                if(board[i][j-1]==0 || board[i][j-1]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}

//能否向右移动
function iscanMoveRight(board){
    for(var i=0;i<4;i++){
        for(var j=0;j<3;j++){
            if(board[i][j]!=0){
                if(board[i][j+1]==0 || board[i][j+1]==board[i][j]){
                    return true;
                }
            }
        }
    }
    return false;
}


